package com.gnerv.battle.boot.module.base.business;

import com.gnerv.battle.boot.module.base.model.dto.OrgAccountDTO;
import com.gnerv.battle.boot.module.base.model.dto.OrgCreateDTO;
import com.gnerv.battle.boot.module.base.model.dto.OrgDTO;
import com.gnerv.battle.boot.module.base.model.dto.OrgTreeDTO;
import com.gnerv.battle.boot.module.base.model.dto.OrgUpdateDTO;
import com.gnerv.battle.boot.common.base.model.RestResult;

import java.util.List;

/**
 * @author ligen
 */
public interface OrgBusiness {

    RestResult<Void> create(OrgCreateDTO orgCreateDTO);

    RestResult<Void> deleteByUkId(String ukId);

    RestResult<Void> updateByUkId(OrgUpdateDTO orgUpdateDTO);

    RestResult<OrgDTO> selectByUkId(String ukId);

    RestResult<List<OrgDTO>> listByName(String name);

    RestResult<List<OrgDTO>> listByParentUkId(String parentUkId);

    RestResult<List<OrgTreeDTO>> listTreeByParentUkId(String parentUkId);

    RestResult<Void> bindAccount(OrgAccountDTO orgAccountDTO);
}
